1. Field of the Invention
The present invention relates generally to an apparatus and a method for improving the latency of a Transmission Control Protocol (TCP) layer, and in particular, to an apparatus and a method for improving the latency of a TCP layer using a congestion control technique and a power control technique, which are used in the Institute of Electrical and Electronics Engineers (IEEE) 802.16e standards.
2. Description of the Related Art
Wired Internet services through various applications have been developed as representative data communication systems. Also, cellular and Personal Communication Services (PCS) technology is settled as a universal voice communication means.
Users have recently been able to use broadband multimedia services using portable terminals, which do not require the use of cable even during their movements, wherein the broadband multimedia services include text-based Internet searches, E-mail transmissions and receipts, File Transfer Protocol (FTP) in electronic commerce, etc., Telnet, etc.
The above-mentioned services are application programs based on Transmission Control Protocol/Internet Protocol (TCP/IP), which provide reliability between terminators.
TCP provides an efficient congestion control function, which can be divided into a section for measuring a usable bandwidth of a network and a section for checking that a data transmission amount has reached the limit of the network and performing congestion avoidance.
The congestion control function refers to a technique for controlling the size of a TCP transmission window so that the TCP transmission window avoids a congestion state in order to operate well. The congestion control technique adopts four algorithms, i.e., Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery. The congestion control technique will be described in detail below.
FIGS. 1A and 1B illustrate congestion control techniques of a conventional TCP.
FIG. 1A illustrates Slow Start and Congestion Avoidance steps of the congestion control technique of the conventional TCP.
Referring to FIG. 1A, the Slow Start step starts from observing if ACKnowledgement (ACK), the rate of a new packet going into a network, is the rate received through the Slow Start step.
A congestion window “cwnd” is used in the Slow Start step. In any case, a TCP layer selects the smaller of the value of a credit window and the value of the congestion window “cwnd” to transmit data. Here, the congestion window “cwnd” is used to start a connection to a transport protocol layer and reduce traffic congestion, and the credit window refers to a window, which checks the remaining amount of credit except for an ACK, which has been most lately received.
If a new connection is set, the congestion window “cwnd” is initialized to one segment and then increased by one segment whenever an ACK is received. A transmitter can also transmit the minimum value of the congestion window “cwnd.”
If the transmitter receives an ACK, the congestion window “cwnd” can be increased from “1” to “2,” and two segments can be transmitted. If the two segments are confirmed, the congestion window “cwnd” is increased to “4.” Thus, since the receiver delays the ACK, it is exponentially increased. As a result, the value of the congestion window “cwnd” is exponentially increased.
If the value of the congestion window “cwnd” of the Slow Start step exceeds a slow start threshold “ssthresh,” the Slow Start step is changed into a Congestion Avoidance step. The Congestion Avoidance step is an algorithm independent of the Slow Start step. However, if congestion occurs on a network, the TCP must lower the transfer rate of packets to the network. Thus, the Slow Start step occurs. As a result, the Slow start and Congestion Avoidance steps are correlated with each other.
Two parameters are used in the Congestion Avoidance and Slow Start steps. The congestion window “cwnd” and the low start threshold “ssthresh” correspond to the two parameters.
The Congestion Avoidance step uses a method of sizing the dynamic window on congestion. In general, when congestion occurs, a large amount of time is required to recover from the congestion. Thus, the exponential increase of the congestion window “cwnd” in the Slow Start step causes too much data to be transmitted and congestion to be worsened.
Accordingly, a method of linearly increasing the congestion window “cwnd” has been suggested as follows.
In other words, if timeout occurs, the slow start threshold ssthresh is set to half of the value of the congestion window “cwnd,” and the congestion window “cwnd” is set to “1.” Also, the Slow Start step continues until the size of the congestion window “cwnd” is equal to the slow start threshold “ssthresh.”
FIG. 1B is a graph illustrating Fast Retransmit and Fast Recovery steps of the congestion control technique of the TCP.
Referring to FIG. 1B, the Fast Retransmit step is used when a predetermined number of duplicate ACKs are received. If a predetermined number or more of duplicate ACKs are received in the Fast Retransmit step, a segment having a corresponding sequence number is regarded as being lost and retransmitted so that timeout does not occur.
In other words, if consecutive duplicate ACKs greater than or equal to a retransmit threshold are received, the transmitter immediately retransmits the corresponding segment regardless of the termination of the retransmission timer. Here, the retransmit threshold is generally set to “3.”
After the segment regarded as being lost in the Fast Retransmit step is retransmitted, the Fast Recovery step starts. The congestion window “cwnd” is increased in the Fast Recovery step whenever a duplicate ACK is received, and a new segment is transmitted based on the increased congestion window “cwnd.”
If an ACK of the lost segment is received, the Fast Recovery step terminates, and the Congestion Avoidance step starts. The Fast Recovery step is efficient when the Bandwidth-Delay Product (BDP) is high.
If the Fast Recovery step is not used, the Congestion Avoidance step starts after the Fast Retransmit step.
The TCP is a layer-based protocol, which was initially developed for the wired network and is now used for both the wired network together with a wireless network. Thus, when handover occurs between the wire and wireless networks, transmission latency occurs in the TCP.
FIG. 2 illustrates the degradation of a connection performance of a TCP occurring when handover is performed between portable communication systems.
Referring to FIG. 2, a core network (CN) 201 transmits data to a mobile node (MN) 207 through a radio access station A (RAS) 203.
If MN 207 performs handover from RAS A 203 to an RAS B 205, MN 207 cannot receive the data transmitted from the CN 201 or an ACK corresponding to the data.
In this case, CN 201 recognizes that congestion occurs on a network and thus operates Slow Start and Congestion Avoidance, which are congestion control algorithms, in order to reset a size of a congestion window “cwnd” to “1.”
If MN 207 completes the handover to RAS B 205, the congestion window “cwnd” restarts at a minimum size for data transmitted through RAS B 207. As a result, TCP's speed becomes slower.